package GPSChallenge;

import java.util.ArrayList;
import java.util.List;
import org.jdom2.*;


public class Ranking{
	
	private List<Element> listaJugadores;
	
	
	public Ranking(){
		listaJugadores=null;
	}
	public Ranking(Element ranking){
		listaJugadores = ranking.getChildren();
	}

	public void verificarJugador(Jugador unJugador){
		Boolean yaAgregado =false;
		if(listaJugadores==null){
			listaJugadores= new ArrayList<Element>();
			listaJugadores.add(unJugador.Serializar());
			yaAgregado= true;
		}else{
		for (int i=0;(i<listaJugadores.size() && !yaAgregado);i++){
			if(unJugador.obtenerUltimoPuntajeAlcanzado()>Integer.parseInt(listaJugadores.get(i).getAttributeValue("puntaje"))){
				Element jugador = unJugador.Serializar();
				listaJugadores.add(i, jugador);
				yaAgregado =true;
			}
		}
		}
		if(listaJugadores.size()<10 && !yaAgregado){
			Element jugador = unJugador.Serializar();
			listaJugadores.add(jugador);
		
		}
	}
	
	public Document Serializar(){
		Document doc = new Document();
		Element rank = new Element("ranking");
		doc.setRootElement(rank);
		if (listaJugadores!=null){
			for(int i=0;i<listaJugadores.size();i++){
				Jugador jugador =new Jugador(listaJugadores.get(i));
				rank.addContent(jugador.Serializar());
			}
		}
		return doc;
	}
}
	